\section{Experimental Setup}

Our experiments were done on a heterogeneous testbed:
\begin{itemize}
  \item Two Intel Core 2 Duo systems with 4GB memory (nanjing, hawaii)
  \item One Intel Core 2 Quad system with 8GB memory (cairo)
  \item Two Intel Celeron systems with 1GB memory (palm04, palm05)
\end{itemize}

The NAS used as a backend store, used for checkpoints, logs and image storage, 
was a Buffalo Linkstation Pro Duo 2TB. The NAS and the machines are 
connected through the gigabit ethernet. We used CentOS 5.4 x86\_64 operating
system on all machines with Xen hypervisor for managing VMs.

Power data is collected using the Watts Up? .Net power meter. The power meter
is connected between a physical host and the wall outlet, allowing it to collect
the total power consumed by the host. The power meter sends data through the
ethernet to a simple web application, which logs the data to a file. Power
samples are taken by the meter every second, and transmitted to our webserver.

In addition, we collect CPU, memory and network metrics of the machines using
Python scripts which leverage the xentools package for logging individual VM
as well as host resource consumption.

We used Hadoop a map reduce application and RuBiS a multi tier web service
application as workloads for testing the checkpoint/restart mechanisms.  These
applications were chosen as example distributed applications which may benefit
from our framework.  In addition, Hadoop uses heavy disk IO operations while
RUBiS does not, allowing us to demonstrate tolerance of both types of
applications.


